#创建过滤器 公共的工具文件
from flask import session,current_app,g
from info.models import User
from functools import wraps

def do_rank(index):
    """根据index，返回对应的first,second,third"""
    if index == 1:
        return "first"

    if index == 2:
        return "second"
    if index == 3:
        return "third"
    else:
        return ""
#view_func == news_detail
def user_login_data(view_func):
     # 使用装饰器实现
    # wrapp # 提示：装饰器会修改被装饰的函数的__name__属性，将所有被装饰的函数的名字都叫做wrapper
    # 解决：@wraps(view_func):会还原被装饰的函数的__name__属性er函数会被拦截到传给装饰器的函数的参数
    @wraps(view_func)
    def wrapper(*args,**kwargs):
     # 获取用户登录的信息
         user_id = session.get('user_id',None)
         user = None
         if user_id:
             #表示用户已经登录，然后查询用户的信息
             try:
                 user = User.query.get(user_id)
             except Exception as e:
                 current_app.logger.error(e)
         g.user = user
    #      执行被装饰的试图函数
         return view_func(*args,**kwargs)
    return wrapper
# def user_login_data():
#     #获取用户登录的信息
#     user_id = session.get('user_id',None)
#     user = None
#     if user_id:
#         #表示用户已经登录，然后查询用户的信息
#         try:
#             user = User.query.get(user_id)
#         except Exception as e:
#             current_app.logger.error(e)
#     return user